﻿using Kavaa.Modules.PortailMedical.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Kavaa.Modules.PortailMedical.Presentation.Models;
using System.Threading;

namespace Kavaa.Modules.PortailMedical.Presentation.Controllers
{
    public class TestController : Controller
    {
        //public static string Nomuser = null;
        //public static string Prenomuser = null; 
        public static List<Clinique> list = new List<Clinique>();
        public static Utilisateur userlogged1; 
        // 
        // GET: /Controllertest/
        public ActionResult SignIn()
        {
           
            return View();
        }
        [HttpPost]
        public ActionResult Test(string search) 
        {
            Thread.Sleep(5000);
            return View();
        }
        public ActionResult Fluid()
        {
            return View();
        }
        public ActionResult Create(Internaute Internaute)
        {
            Kavaa.Modules.PortailMedical.Presentation.Services.PortailMedical.AddInternaute(Internaute);
            return PartialView();
        }
 

        //remplis les listes déroulantes de la demande d'accréditation
        public ActionResult Decouvrir()
        {
            list = new List<Clinique>();
            List<Nomenclature> nomenclatures = new List<Nomenclature>();
            nomenclatures = Kavaa.Modules.PortailMedical.Presentation.Services.PortailMedical.GetNomenclatures();
            ViewBag.nomenclatures = nomenclatures;

            List<Acte> actes = new List<Acte>();
            actes = Kavaa.Modules.PortailMedical.Presentation.Services.PortailMedical.GetActes();
            ViewBag.actes = actes;

            List<Ville> villes = new List<Ville>();
            villes = Kavaa.Modules.PortailMedical.Presentation.Services.PortailMedical.GetVilles();
            ViewBag.villes = villes;

            return View();
        }


        [HttpPost]
        public ActionResult CreateInternaute(MyViewModel model)
        {
            try
            {
                Kavaa.Modules.PortailMedical.Presentation.Services.PortailMedical.AddInternaute(model.Internaute);
                return RedirectToAction("Decouvrir");
            }
            catch
            {
                return View();
            }


        }
        [HttpPost]
        public ActionResult Authentification()
        {
            if (Request["user"].Equals("") || Request["password"].Equals(""))
            {
                return RedirectToAction("SignIn");

            }
            else if (Request["user"].Equals("admin") && Request["password"].Equals("admin"))
            {
                Utilisateur user = new Utilisateur();
                Session["user"] = user;
                return RedirectToAction("AccueilPrestataire", "Prestataire");
            }
            else
            {
                Utilisateur userlogged;
                Utilisateur user = Kavaa.Modules.PortailMedical.Presentation.Services.PortailMedical.GetUserConnecte(Request["user"], Request["password"]);
                if (user.Id != 0)
                {
                    String type = Kavaa.Modules.PortailMedical.Presentation.Services.PortailMedical.GetTypeUserConnecte(user.Acteur.Id);
                    Session["user"] = user;
                    userlogged = (Utilisateur)(Session["user"]);
                    System.Diagnostics.Debug.Write(userlogged.Fonction);
                    var etatcompte = user.Etatcompte;
                    if (etatcompte == 1)
                    {
                        if (type.Equals("Cabinet"))
                        {

                            return RedirectToAction("AccueilCabinet", "Cabinet");
                        }
                        else if (type.Equals("Clinique"))
                        {

                            return RedirectToAction("AccueilClinique", "Clinique");
                        }
                        else
                            return RedirectToAction("SignIn");
                    }
                    else
                    {
                        return RedirectToAction("AccesInterdit");

                    }
                }
                else
                    return RedirectToAction("SignIn");


            }

        }

        [HttpPost]
        public PartialViewResult envoi(MyViewModel model)
        {
            Utilisateur user = (Utilisateur)(Session["user"]);
            list = Kavaa.Modules.PortailMedical.Presentation.Services.Cabinet.DecouvrirCliniques(model.acte.Id, model.ville.Id, user.Id);
            ViewBag.IdActe = model.acte.Id;
            ViewBag.IdVille = model.ville.Id;
            Thread.Sleep(2000);
            return PartialView(list);
        }

        [HttpPost]
        public ActionResult CliniqueSelec(int[] selectedCliniques, int acteId, int villeId)
        {
            Utilisateur user = (Utilisateur)(Session["user"]);
            ViewBag.IdActe = acteId;
            ViewBag.IdVille = villeId;



            foreach (int nameID in selectedCliniques)
            {
                Kavaa.Modules.PortailMedical.Presentation.Services.Cabinet.AddAccreditation(user.Id, nameID, acteId);
            }
            list = Kavaa.Modules.PortailMedical.Presentation.Services.Cabinet.DecouvrirCliniques(acteId, villeId, user.Id);

            return PartialView(list);
            //return "Votre demande d'accréditation a été bien envoyé";
        }


    }

}